package cn.itcast.dao;

import cn.itcast.pojo.OrderSetting;
import org.apache.ibatis.annotations.Param;


import java.util.Date;
import java.util.List;


public interface OrderSettingDao {
    /**
     * 根据时间查询 此预约日期是否存在
     *
     * @param date
     * @return
     */
    OrderSetting queryOrderDate(String date);

    /**
     * 更新预约人数
     * @param reservations
     * @param formatDate
     * @return
     */
    int updateOrderDate(@Param(value = "reservations") int reservations, @Param(value = "formatDate") String formatDate);

    /**
     * 更新预约信息
     */
    int update(@Param("orderDate") String orderDate,@Param("number") Integer number);



    /**
     * 查询所有预约数据
     *
     * @return
     */
    List<OrderSetting> findAll(String orderDate);


    /**
     * 匹配添加或修改
     */
    void save(List<OrderSetting> orderSettingList);

    /**
     * 想要order添加一人数据 前提是orderSetting的预约人数+1 修改成功返回1
     * 防止用户修改order 时间选已经预约人数已经满的日期
     * @param orderDate
     */
    int updateByTimeAndNumber(Date orderDate);


    /**
     * 给当前日期添加一条数据
     * @param orderSetting
     */
    void add(OrderSetting orderSetting);



    /**
     * 根据时间查询单条数据
     * @param orderDate
     * @return
     */
    OrderSetting findByTime(String orderDate);

}
